package to4.server;

import java.util.ArrayList;

public class Auto {
	private String autoMerk;
	private String autoType;
	private int autoPlaats;
	private boolean[] provincies;
	private String commentaar;
	private ArrayList<Inlog> personenInAuto;

	public Auto(String mrk, String tpe, int pls, boolean[] prov, String comment){
		autoMerk = mrk;
		autoType = tpe;
		autoPlaats = pls;
		provincies = prov;
		commentaar = comment;
		personenInAuto =  new ArrayList<Inlog>();
	}
	//Setters
	public void setAutoMerk(String am){
		autoMerk = am;
	}
	public void setAutoType(String tp){
		autoType = tp;
	}
	public void setAutoPlaats(int ap){
		autoPlaats = ap;
	}

	public void setProvincies(boolean[] prov){
		provincies = prov;
	}
	public void setCommentaar(String comment){
		commentaar = comment;
	}

	//Getters
	public String getAutoMerk(){
		return autoMerk;
	}
	public String getAutoType(){
		return autoType;
	}
	public int getAutoPlaats(){
		return autoPlaats;
	}
	public String getCommentaar(){
		return commentaar;
	}
	public boolean[] getProvincieArray(){
		return provincies;
	}
	public String getProvinciesString(){
		String s= "";
		if(provincies[0] == true){
			s+="Drenthe  ";
		}
		if(provincies[1] == true){
			s+="Flevoland  ";
		}
		if(provincies[2] == true){
			s+="Friesland  ";
		}
		if(provincies[3] == true){
			s+="Gelderland  ";
		}
		if(provincies[4] == true){
			s+="Groningen  ";
		}
		if(provincies[5] == true){
			s+="Limburg  ";
		}
		if(provincies[6] == true){
			s+="Noord-Brabant  ";
		}
		if(provincies[7] == true){
			s+="Noord-Holland  ";
		}
		if(provincies[8] == true){
			s+="Overijssel  ";
		}
		if(provincies[9] == true){
			s+="Utrecht  ";
		}
		if(provincies[10] == true){
			s+="Zeeland  ";
		}
		if(provincies[11] == true){
			s+="Zuid-Holland  ";
		}

		if(provincies[0]==true&&provincies[1]==true&&provincies[2]==true&&provincies[3]==true&&provincies [4]==true&&provincies[5]==true&&provincies[6]&&provincies[7]==true&&provincies[8]==true&&provincies[9]==true&&provincies[10]==true&&provincies[11]==true){
			s="Alle Nederlandse provincies";
		}
		return s;
	}

	public String getProvinciesKortString(){
		String s= "";
		if(provincies[0] == true){
			s+="D ";
		}
		if(provincies[1] == true){
			s+="FL ";
		}
		if(provincies[2] == true){
			s+="FR ";
		}
		if(provincies[3] == true){
			s+="GE ";
		}
		if(provincies[4] == true){
			s+="GR ";
		}
		if(provincies[5] == true){
			s+="L ";
		}
		if(provincies[6] == true){
			s+="N-B ";
		}
		if(provincies[7] == true){
			s+="N-H ";
		}
		if(provincies[8] == true){
			s+="O ";
		}
		if(provincies[9] == true){
			s+="U ";
		}
		if(provincies[10] == true){
			s+="Z ";
		}
		if(provincies[11] == true){
			s+="Z-H ";
		}
		if(provincies[0]==true&&provincies[1]==true&&provincies[2]==true&&provincies[3]==true&&provincies [4]==true&&provincies[5]==true&&provincies[6]&&provincies[7]==true&&provincies[8]==true&&provincies[9]==true&&provincies[10]==true&&provincies[11]==true){
			s="Alle Nederlandse provincies";
		}
		return s;
	}

	public int getAantalMensen() {
		return getAutoPlaats()-personenInAuto.size()-1;
	} 

	public boolean voegAutoToeAanPersoon(Inlog persoon){ 
		boolean b;
		if(persoon != null){
			personenInAuto.add(persoon);
			b = true;
		}
		else{
			b = false;
			System.out.println("Persoon was null en kan niet worden toegevoegd aan auto");
		}
		return b;
	}

	public boolean bestaatInArrayList(String emailad){
		boolean b = false;
		for(Inlog i: personenInAuto){
			b = b || (i.getEmailadres().equalsIgnoreCase(emailad));
			System.out.println("Toegevoegd aan arraylist personeninAuto");
		}
		return b;
	}

	public ArrayList<String> geefIngeschrevenCarpooler(){
		ArrayList<String> s=new ArrayList<String>();
		for(Inlog i: personenInAuto){
			if (i != null){
				s.add(i.getVoornaam()+" "+i.getAchternaam()+":*:"+i.getEmailadres()+":*:"+i.getAdres()+" "+i.getHuisnummer()+":*:"+i.getPostcode()+":*:"+i.getTelefoonnummer()+":*:"+i.getDevoorkeuren().getReizen()+":*:"+i.getDevoorkeuren().getRoken()+":*:"+i.getDevoorkeuren().getFiets());
			}
		}
		return s;
	}

	public ArrayList<String> geefAdresIngeschrevenCarpooler(){
		ArrayList<String> s=new ArrayList<String>();
		for(Inlog i: personenInAuto){
			if (i != null){
				s.add(i.getPostcode());
			}
		}
		return s;
	}

	public void verwijderAllePassagiers(){
		personenInAuto.clear();
	}

	public void verwijderuitAuto(Inlog i){
		personenInAuto.remove(i);
	}
	public int size(){
		return personenInAuto.size();
	}
}